#pragma once

#include <list>
#include <string>
#include <map>

#include "Element.h"
#include "NoSuchElementException.h"
#include "PersistenceUniqueConstraintException.h"
#include "DB.h"

using namespace std;

class AbstractDao {	

private: DB * db;

public:

	AbstractDao(void);	
	~AbstractDao(void);

	virtual void save(Element * object) = 0;
	virtual Element * find(string id) = 0;
	virtual list<Element*> * findAll(void) = 0;
	virtual void deleteObject(Element * objectToDelete) = 0;

};
